package com.yimi.yinhepda.db.dao;

import android.database.Cursor;

import java.sql.SQLException;
import java.util.List;

/**
 * 项目名称：YinHePda
 * 创建时间：2017/2/23 10:23
 * 版本号：1.0
 * 功能描述  dao基类，定义一些怎删改查基本操作
 *
 * @author 刘宏恩
 */
public interface IBaseDao<T, ID> {
    /**
     * 根据id查找
     */
    public <T> T findById(ID id) throws SQLException;

    /**
     * 查找所有
     */
    public List<T> findAll() throws SQLException;


    /***
     * 查询第一条
     * @return
     * @throws SQLException
     */
    public Cursor findFirstData(String tableName) throws SQLException;

    /**
     * 删除指定记录
     */
    public int delete(T entity) throws SQLException;

    /**
     * 指定id删除
     */
    public int deleteById(ID id) throws SQLException;

    /**
     * 删除所有记录
     */
    public int delete(List<T> entities) throws SQLException;

    /**
     * 删除所有记录
     */
    public int deleteAll() throws SQLException;

    /**
     * 插入一条数据
     */
    public int insert(T entity) throws SQLException;

    /**
     * 插入一组数
     */
    public int insert(List<T> entities) throws SQLException;

    /**
     * 修改
     */
    public int update(T entity) throws SQLException;
}
